/*
 * 代号：凤凰
 * http://www.jphenix.org
 * 2022年8月24日
 * V4.0
 */
package com.jphenix.standard.servlet.api;

import com.jphenix.standard.docs.ClassInfo;

/**
 * Cookie接口
 * 
 * 2022-09-04 隔离了ServletApi，兼容新老Tomcat
 * 
 * @author MBG
 * 2022年8月24日
 */
@ClassInfo({"2022-09-04 21:58","Cookie接口"})
public interface ICookie {



    /**
     * 设置注释
     * @param purpose 注释
     * 2022年8月24日
     * @author MBG
     */
    void setComment(String purpose);

    /**
     * 返回注释
     * @return 注释
     * 2022年8月24日
     * @author MBG
     */
    String getComment();

    /**
     * 设置作用域
     * @param pattern 作用域
     * 2022年8月24日
     * @author MBG
     */
    void setDomain(String pattern);

    /**
     * 返回作用域
     * @return 作用域
     * 2022年8月24日
     * @author MBG
     */
    String getDomain();

    /**
     * 设置最大存活时间（秒）
     * @param expiry 最大存活时间（秒）
     * 2022年8月24日
     * @author MBG
     */
    void setMaxAge(int expiry);

    /**
     * 返回最大存活时间（秒）
     * @return 最大存活时间（秒）
     * 2022年8月24日
     * @author MBG
     */
    int getMaxAge();

    /**
     * 设置作用路径
     * @param uri 作用路径
     * 2022年8月24日
     * @author MBG
     */
    void setPath(String uri);

    /**
     * 返回作用路径
     * @return 作用路径
     * 2022年8月24日
     * @author MBG
     */
    String getPath();

    /**
     * 设置是否为安全数据
     * @param flag 是否为安全数据
     * 2022年8月24日
     * @author MBG
     */
    void setSecure(boolean flag);

    /**
     * 返回是否为安全数据
     * @return 是否为安全数据
     * 2022年8月24日
     * @author MBG
     */
    boolean getSecure();

    /**
     * 获取名字
     * @return 名字
     * 2022年8月24日
     * @author MBG
     */
    String getName();

    /**
     * 设置值
     * @param newValue 值
     * 2022年8月24日
     * @author MBG
     */
    void setValue(String newValue);

    /**
     * 获取值
     * @return 值
     * 2022年8月24日
     * @author MBG
     */
    String getValue();

    /**
     * 获取版本值
     * @return 版本值
     * 2022年8月24日
     * @author MBG
     */
    int getVersion();

    /**
     * 设置版本值
     * @param v 版本值
     * 2022年8月24日
     * @author MBG
     */
    void setVersion(int v);

    /**
     * 克隆
     * @return 克隆体
     * 2022年8月24日
     * @author MBG
     */
    ICookie clone();

    /**
     * 设置是否不落地保存
     * @param httpOnly 是否不落地保存
     * 2022年8月24日
     * @author MBG
     */
    void setHttpOnly(boolean httpOnly);

    /**
     * 获取是否不落地保存
     * @return 是否不落地保存
     * 2022年8月24日
     * @author MBG
     */
    boolean isHttpOnly();
}
